Fork me on GitHub

Documentations > Utilisateurs standards > Personnaliser son site > der; background-color: #FFFF80;">Modifier le der; background-color: #FFFF80;">formulaire d'inscription

der; background-color: #FFFF80;">Modifier le der; background-color: #FFFF80;">formulaire d'inscription


Versions xoops 2.0.5 à  2.0.7

Attention:
- suivez scrupuleusement les indications et faites les tests au fur et à  mesure.
- prenez les précautions habituelles (test en local, sauvegarde du site avant application du hack)

Sommaire

1)

der; background-color: #FFFF80;">Formulaire d'enregistrement

include/registerform

2)

Définitions de langage

language/...../user.php

3)

Table users

xoops_users

4)

Classe user

kernel/user.php

5)

Gestion de l'enregistrement

register.php

6)

Informations sur le membre

userinfo.php

7)

Template

system/templates/system_userinfo.html

8)

Modification du profil par le membre

edituser.php

9)

Administration membre : der; background-color: #FFFF80;">formulaire

modules/system/admin/users/userform.php

10)

Administration membre: fichier principal

modules/system/admin/users/main.php

11)

Edition, mise à  jour du membre

modules/system/admin/users/users.php

12)

Définition de langage pour l'admin

modules/system/language/.../admin/users.php

NB: Si vous voulez simplement insérer un champ existant dans la table (name p.ex.), seules les étapes 1 et 5 sont nécessaires.


1) der; background-color: #FFFF80;">Formulaire d'enregistrement
Fichier include/registerform
Sous la ligne
$reg_form->addElement(new XoopsFormText(_US_NICKNAME, "uname", 26, 25, $uname), true);

Ajoutez
$reg_form->addElement(new XoopsFormText(_US_NAME, "name", 26, 25, $name), true); // true si champ obligatoire
$reg_form->addElement(new XoopsFormText(_US_FIRSTNAME, "firstname", 26, 25, $firstname)); // ex. avec champ non obligatoire

Astuce
Pour rajouter une * aprês le nom d'un champ obligatoire
$reg_form->addElement(new XoopsFormText(_US_NAME."*", "name", 26, 25, $name), true);

2) Définitions de langage
Fichier language/...../user.php
Sous la ligne
define('_US_NAME','Name');

Ajoutez
define('_US_FIRSTNAME','Firstname');

Testez maintenant l'affichage du der; background-color: #FFFF80;">formulaire.

3) Table xoops_users

Modifiez maintenant la table xoops_user pour ajouter le champ firstname varchar(60) aprês le champ name.

4) Classe user
Modifiez la classe user pour la prise en compte du nouveau champ firstname
Fichier kernel/user.php

Sous les lignes
function XoopsUser($id = null)
$this->initVar('name', XOBJ_DTYPE_TXTBOX, null, false, 60);

Ajoutez
$this->initVar('firstname', XOBJ_DTYPE_TXTBOX, null, false, 60);

Ajoutez la fonction
function firstname($format="S")
{
return $this->getVar("firstname", $format);
}


Dans la fonction : function insert(&$user, $force = false)
insérez les parties en rouge: (respectez ici pour votre nouveau champ sa position dans la table users)

if ($user->isNew()) {
$sql = sprintf("INSERT INTO %s (uid, uname,name, firstname, email, ....
...... VALUES (%u, %s, %s,%s, %s, .....
..... $this->db->quoteString($uname), $this->db->quoteString($name), $this->db->quoteString($firstname),
$this->db->quoteString($email),....

} else {
$sql = sprintf("UPDATE %s SET uname = %s, name = %s,firstname = %s, email = %s .....
.... $this->db->quoteString($uname), $this->db->quoteString($name),$this->db->quoteString($firstname),
$this->db->quoteString($email), ....

5) Gestion du der; background-color: #FFFF80;">formulaire d'inscription
Fichier register.php

Partie case 'newuser':
Sous la ligne
echo "<input type='hidden' name='uname' value='".$myts->makeTboxData4PreviewInForm($uname)."' />";

Ajoutez
echo "<input type='hidden' name='name' value='".$myts->makeTboxData4PreviewInForm($name)."' />";
echo "<input type='hidden' name='firstname' value='".$myts->makeTboxData4PreviewInForm($firstname)."' />";


Partie case 'finish':
Sous la ligne
$newuser->setVar('uname', $uname);

Ajoutez
$newuser->setVar('name', $name);
$newuser->setVar('firstname', $firstname);


Testez maintenant l'enregistrement d'un membre.

6) Affichage du profil
Fichier userinfo.php
Sous les lignes
$xoopsTpl->assign('lang_realname', _US_REALNAME);
$xoopsTpl->assign('user_realname', $thisUser->getVar('name'));


Ajoutez
$xoopsTpl->assign('lang_firstname', _US_FIRSTNAME);
$xoopsTpl->assign('user_firstname', $thisUser->getVar('firstname'));


7) Template d'affichage du profil
Fichier system/templates/system_userinfo.html
En rajoutant
<tr>
<td class="head"><{$lang_firstname}></td>
<td align="center" class="odd"><{$user_firstname}></td>
</tr>

Metrre à  jour le module systeme

Testez maintenant 'Voir son compte'

8) Editer son compte
Fichier edituser.php
Dans la partie
if ($op == 'saveuser') {
Sous la ligne
$edituser->setVar('name', $name);

Ajoutez
$edituser->setVar('firstname', $firstname);

Dans la partie
if ($op == 'editprofile') {
Sous les lignes
$name_text = new XoopsFormText(_US_REALNAME, 'name', 30, 60, $xoopsUser->getVar('name', 'E'));$form->addElement($name_text);

Ajoutez
$firstname_text = new XoopsFormText(_US_FIRSTNAME, 'firstname', 30, 60, $xoopsUser->getVar('firstname', 'E'));$form->addElement($firstname_text);


Testez maintenant 'Editer son compte'

9) Administration membre
Fichier modules/system/admin/users/userform.php
Au début, sous la ligne
$name_text = new XoopsFormText(_AM_NAME, "name", 30, 60, $name_value);

Ajoutez
$firstname_text = new XoopsFormText(_AM_FIRSTNAME, "firstname", 30, 60, $firstname_value);

Vers la fin, sous la ligne
$form->addElement($name_text);

Ajoutez
$form->addElement($firstname_text);

10) Administration membre: fichier principal
Fichier modules/system/admin/users/main.php
Modifiez l'appel à  la fonction updateUser

updateUser($uid, $uname, $name, $firstname, $url, $email, $user_icq, $user_aim, $user_yim, $user_msnm, $user_from, $user_occ, $user_intrest, $user_viewemail, $user_avatar, $user_sig, $attachsig, $theme, $pass, $pass2, $rank, $bio, $uorder, $umode, $notify_method, $notify_mode, $timezone_offset, $user_mailok);

11) Administration : édition/mise à  jour du membre
Fichier modules/system/admin/users/users.php

function modifyUser($user)
Sous la ligne
$name_value = $user->getVar("name", "E");

Ajoutez
$firstname_value = $user->getVar("firstname", "E");

function updateUser
function updateUser($uid, $uname, $name,$firstname, $url, $email, $user_icq, $user_aim, $user_yim, $user_msnm, $user_from, $user_occ, $user_intrest, $user_viewemail, $user_avatar, $user_sig, $attachsig, $theme, $pass, $pass2, $rank, $bio, $uorder, $umode, $notify_method, $notify_mode, $timezone_offset, $user_mailok)

puis sous la ligne
$edituser->setVar("name", $name);

Ajoutez
$edituser->setVar("firstname", $firstname);

12) Définition de langage pour l'administration
Fichier modules/system/language/.../admin/users.php
define("_AM_FIRSTNAME","Pr&eacute;nom");

Testez maintenant ''Editer/effacer des membres'

Pour conclure
A partir de l'exemple ci-dessus, vous pourrez personnaliser différemment ce der; background-color: #FFFF80;">formulaire d'inscription, mais vous devrez pour celà  posséder un minimum de connaissances sur les différentes classes de der; background-color: #FFFF80;">formulaire de xoops, les instructions php, les requêtes sql.

Licence, certains droits réservés
Partager Twitter Partagez cette article sur GG+
  Voir cet article en format PDF Imprimer cet article Envoyer cet article

Naviguer à travers les articles
Article précédent Protéger ses images Modifier le formulaire d'inscription (exemple pratique) Article suivant
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

9 Personne(s) en ligne (1 Personne(s) connectée(s) sur Documentations) | Utilisateur(s): 0 | Invité(s): 9 | Plus ...